package com.momo.hr.config;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * FastDFS工具类
 */
public class FastDFSUtils {
    private static StorageClient1 client1;
    //使用静态代码块来创建
    static {
        //创建连接
        try {
            ClientGlobal.initByProperties("fastdfs-client.properties");
            TrackerClient trackerClient = new TrackerClient();//创建一个客户端
            TrackerServer trackerServer = trackerClient.getConnection();//获取连接
            //全局的Client都西昂
            client1 = new StorageClient1(trackerServer,null);//创建一个Storage客户端
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }

    }


    /**
     * 文件上传的方法
     * @param file
     * @return
     */
    public static String uploadFile(MultipartFile file){
        byte[] bytes = new byte[0];//获取文件数组
        try {
            bytes = file.getBytes();
        } catch (IOException e) {
            e.printStackTrace();
        }
        String originalFilename = file.getOriginalFilename();//获取源文件的名字
        //这个方法的 参数 1、传递的byte数组 2、文件类型 3、文件的元数据【如果没没有 可以传 null 】
        try {
            return client1.upload_file1(bytes,originalFilename.substring(originalFilename.lastIndexOf(".")+1),null);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
        return null;
    }


}
